一、概述
IEEE
802.3ad 标准的 LACP(Link Aggregation Control Protocol, 链路聚合控制协议)是一个关于动态链路聚合的协议,它通过协议报文
LACPDU(Link Aggregation Control Protocol Data Unit, 链路聚合控制协议数据单元)和相连的设备交互信息。
当端口启用 LACP
协议后,端口通过发送 LACPDU 来通告自己的系统优先级,系统 MAC,端口的优先级,端口号和操作 key 等。相连设备收到该报文后,根据所存储的其他端口的信息,选择端口进行相应的聚合操作,从而可以使双方在端口退出或者加入聚合组上达到一致。
二、动态链路聚合的模式
端口有 2 种聚合模式:主动(Active)模式、被动模式(Passive)。
1) 主动模式的端口会主动发起 LACPDU报文协商;
2) 被动模式的端口不会主动发送LACPDU报文,在接收到对端发送的LACP报文后,该端口进入协议计算状态。
各个聚合模式的相邻端口聚合模式要求如下:
本地端口模式 | 相邻端口聚合模式要求 |
主动模式 | 主动模式 或 被动模式 |
被动模式 | 主动模式 |
三、LACP端口的状态
聚合组内的成员有可能处于 3 种状态:
1) 当端口的链路状态处于 Down 时,端口不可能转发任何数据报文,显示为”down”状态。
2) 端口链路处于 Up 状态,并经过 LACP 协商后,端口被置于聚合状态(端口被作为一个聚合组的一个成员参与聚合组的数据报文转发),显示为“bndl”状态。
3) 当端口链路处于 UP 状态,但是由于对端没有启用 LACP,或者因为端口属性和主端口不一致等一些因素导致经过报文协商端口被置于挂起状态(处于挂起状态的端口不参与数据报文转发),显示为“susp”状态。
四、动态链路聚合的优先级关系
1) LACP的系统ID(系统优先级+系统MAC地址组成)
每台设备仅能配置一个 LACP 聚合系统。每个 LACP 聚合系统都有唯一的系统优先级。系统 ID 由 LACP 的系统优先级和设备 MAC 地址组成。系统优先级越小,系统
ID 的优先级越高;在系统优先级相同的情况下,比较设备的 MAC 地址,设备 MAC 地址越小,系统ID 的优先级越高。系统 ID 优先级较高的系统决定端口状态,低优先级系统的端口状态随高优先级系统的端口状态变化而变化。
2) LACP的端口ID
每个端口有独立的
LACP 端口优先级,这是一个可配置的数值。端口 ID 由 LACP 的端口优先级和端口号组成。端口优先级数值越小,端口 ID 的优先级越高;在端口优先级相同的情况下,端口号越小,端口
ID 的优先级越高。
3) LACP的主端口
当有动态成员处于 up 状态时,LACP 会根据端口的速率,双工速率等关系,选择一个聚合组内端口 ID 优先级最高的端口作为主端口。只有和主端口属性相同的端口才能处于聚合状态,参与聚合组的数据转发。当端口的属性变化时,LACP
会重新选择主端口;当新的主端口不处于聚合状态时,LACP 会把同一个聚合组内的成员解聚合,重新聚合。
4) LACP的协商过程
两台设备个通过两个端口互联,欲形成动态聚合,参数如下图:
五、动态链路聚合的要求
动态链路聚合是 LACP 协议自动地添加和删除聚合组内的端口,两个端口被自动地聚合在一起有一定的要求。
1) 只有相同的操作 key 才能被聚合在一起。
2) 只有和主端口具有相同的速率和双工等基本属性的端口才能被动态聚合在一起。
3) 端口链路处于 UP 状态,相连的端口启用 LACP,并且端口或者相连端口必须处于主动模式(Active)。
六、LACPUP报文格式
主要字段介绍:
Actor_Port/Partner_Port:本端/对端接口信息。
Actor_State/Partner_State:本端/对端状态。
Actor_System_Priority/Partner_System_Priority:本端/对端系统优先级。
Actor_System/Partner_System:本端/对端系统ID。
Actor_Key/Partner_Key:本端/对端操作Key,各接口的该值相同才能够聚合(聚合口编号)。
Actor_Port_Priority/Partner_Port_Priority:本端/对端接口优先级。
实际报文举例